package com.mzz.structure.proxy.dynamicproxy;

import java.lang.reflect.Proxy;

/**
 *  动态代理模式，要求被代理类和代理类实现相同的接口 java动态代理机制以巧妙的方式实现了代理模式的设计理念。
 * @author xushijian
 * 动态代理模式核心是 java.lang.reflect.InvocationHandler 接口
 * @date 18/6/4 下午12:24
 */
public class Test {

    public static void main(String[] args) {

        PersonHandler personHandler = new PersonHandler(new PersonDaoImpl());

        IPersonDao proxy = (IPersonDao) Proxy.newProxyInstance(IPersonDao.class.getClassLoader(), new Class[]{IPersonDao.class}, personHandler);

        proxy.say();
    }
}
